iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
Security

前端小廢物誤入 Hackthebox Module系列 第 2

Nmap - 網路檢測的魔法 (上卷)

  • 分享至 

  • xImage
  •  

Nmap 是什麼?

Nmap 又稱為 Network Mapper,它是一個開源的「網路掃描」和「安全審計」的工具,官方文件可以參考:https://nmap.org/docs.html
https://ithelp.ithome.com.tw/upload/images/20240916/20107197QDcMzhmEtm.png

Nmap 可以拿來幹嘛?

  • 端口掃描:

    檢測目標主機上開放的 TCPUDP port 等,幫助識別哪些服務正在運行 (哪些服務可以鎖定呢?)。

  • 服務版本探測:

    通過對 open port 的分析,Nmap 可以識別 port 上運行的具體服務和版本(如 HTTPSSHDNS 等)。

  • OS 探測:

    了解目標主機的類型(如 LinuxWindows 等)。

  • 掌握網絡拓撲:

    繪製整個網絡的拓撲圖,識別網絡中的所有存活主機、routerswitch

  • 防火牆和過濾規則檢測:

    檢測哪些 port 被防火牆或其他過濾設備過濾,幫助我們「測試防火牆的配置」。

  • 漏洞掃描:

    通過腳本引擎(NSE),可以運行多種腳本來檢測目標主機是否存在已知的漏洞或錯誤配置。

講了這麼多 ><,到這邊只是希望讀者對於 Nmap 的使用有大概的了解~

接著下來,讓我們來開啟鷹眼吧! (顆顆)

/images/emoticon/emoticon77.gif

基礎 Nmap 使用方式

基本指令

Linux 中,我們可以開啟終端機並輸入以下的指令,這也是最基礎的 nmap 使用方式~

nmap <target> -p <port-range>

使用以上的 command ,我們可以針對目標(該 ipport) 帶入預設設置進行 TCP 掃描。

預設設置是哪些?

筆者大致介紹一下幾個預設設置~

掃描前 1000 個常用 TCP 端口:

預設情況下,Nmap 會掃描最常見的 1000 個 TCP port,而不是掃描所有 65535 個端口。這是為了節省時間,因為絕大多數服務都運行在這些常見的 port 上。

TCP Connect 掃描:

預設使用 -sT ,也就是進行 TCP 掃描。

根據情況使用 ARP 或是 ICMP 探測:

  • 同一子網:

    Nmap 會優先使用 「ARP 探測」。這是因為在本地網絡中,ARP 是最可靠且最快速的探測方法。

  • 不同子網(遠程):

    Nmap 預設使用 ICMP Echo 探測。ARP 無法跨越子網,因此 Nmap 會選擇 ICMPTCPUDP 探測方法。


筆者 say say 念:

上面有提到 ICMP Echo,筆者稍微介紹一下!


什麼是 ICMP Echo?

ICMPInternet Control Message Protocol,網際網路控制消息協定) 是 TCP/IP 協議族中的一種協議,而 ICMP EchoICMP 消息類型之一,通常用來測試網絡連通性。

使用 ICMP Echo 的目的通常不是傳遞數據,而是報告網絡問題或提供網絡狀態信息,例如「錯誤報告」或「連接測試」。

ICMP EchoICMP 消息的一種,主要用來測試設備是否在線以及網絡的連通性。

此處說明 ICMP Echo 的過程,以 主機 A ping 主機 B 為例:

  1. ICMP Echo Request:

    主機 A 發送給目標主機 B 的一條消息,請求主機 B 回應。

  2. ICMP Echo Reply:

    如果主機 B 收到 ICMP Echo Request,會返回一條 ICMP Echo Reply 消息,表示「主機 B 在線且能夠接收和回應數據包」。


筆者 say say 念:

Echo 消息」的過程其實就是我們熟悉的 Ping 操作,應該不難理解~


更多的 Nmap 參數

在對 ICMP 有稍微的理解後,我們來看看更多使用 Nmap 魔法的方式吧!

找到你要的資訊

如果讀者想要透過 Nmap 偵測 OS、版本、封包等資訊,可以使用以下指令~

OS 資訊

nmap -O <target>

服務版本

nmap -sV <target>

封包資訊(傳送和接收的封包)

nmap --packet-trace <target>

判斷端口狀態原因

nmap --reason <target>

它會詳細列出 Nmap 判定每個端口是開放、關閉或過濾的原因,結果大概會長這樣:

PORT     STATE    SERVICE   REASON
22/tcp   open     ssh       syn-ack
80/tcp   closed   http      rst
443/tcp  filtered https     no-response

筆者 say say 念:

此處有標示 STATE,這邊的 closedfiltered 等會在下一篇介紹~


關閉各種掃描的參數

關閉 port 掃描

nmap <target> -sn

禁用 arp ping

nmap <target> --disable-arp-ping
  • 什麼是 ARP ping?

    在本地網絡中,當你用 Nmap 掃描主機時,Nmap 會自動使用 ARP Ping(也就是發送 ARP 請求來獲取目標主機的 MAC 地址)來檢查目標主機是否在線。

    這是因為在本地網絡中,ARP 是比 ICMP 或其他探測方法更有效且更可靠。

    即使防火牆阻擋了 ICMP Echo(Ping) 消息,ARP 請求仍然能夠穿過,因為 ARP 是網絡通信中必要的一部分。

  • 使用情境:

    ARP ping 被針對或監控了!想禁用它 ><

    想使用其他掃描方法 XD

禁用 ICMP Echo request

nmap <ip> -Pn

禁用 DNS 解析

nmap <ip> -n
  • 什麼是 DNS 解析?

    Nmap 執行掃描時,默認情況下,它會嘗試將 IP 地址解析為對應的域名(也就是所謂的 DNS 解析)。

  • 為何要禁用 DNS 解析?

    禁用 DNS 解析可以在某些情況下提高掃描的速度和效率。

  • 使用情境說明:

    假設你需要掃描大量 IP 但你不需要域名資訊,加上這個參數可以「提升你的掃描速度」。


筆者爆肝宣言:

因為之後的內容會比較多,所以不同的掃描技術會在下次介紹~


本日心得

今天難得開始認真仔細的研究各種細節 ><

感謝 Hackthebox 感謝 chatgpt! 每天產出文章&玩 lab 真的不容易 QQ

下次筆者會介紹 Nmap 的不同的掃描技術(ACK 掃描/SYN 掃描/UDP 掃描)、防火牆繞過、使用 Nmap 的 performance 議題。

參考資訊

https://academy.hackthebox.com/


上一篇
魔法起源
下一篇
Nmap - 網路檢測的魔法 (中卷)
系列文
前端小廢物誤入 Hackthebox Module31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言